home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
parallax
/
mac_sit.hqx
/
Parallaxis 2.11
/
auto.z
< prev
next >
Wrap
Text File
|
1992-01-09
|
3KB
|
83 lines
START
79 PE
2 PORTS
SCALAR I1 I1
VECTOR I1 B3
1 : GOTO 33;
2 : PROC 1 VECTOR I1;
POPV VI1:1;
VI[VI1:1] := 0;
PUSHV VI1:1;
RETURN;
3 : PROC 1;
ERROR "value out of range";
RETURN;
4 : PROC 1
SCALAR
VECTOR I2 I1; group number 1
PUSHV ADDR VI1:2;
5 : VI1:1 := ID - 1; for LIST calculating DIMi
VI1:1 := VI1:1 + 1; DIM1
6 : VI1:3 := VI1:1 - 1;
7 : VI1:3 := VI1:3 - 1;
8 : VI1:2 := VI1:3;
VI1:2 := VI1:2 + 1;
IF VI1:3 < 0 CALL 2;
IF VI1:3 > 78 CALL 2;
CONNECT 1 TO 2 AT VI1:2;
9 : VI1:3 := VI1:1 + 1;
10 : VI1:3 := VI1:3 - 1;
11 : VI1:2 := VI1:3;
VI1:2 := VI1:2 + 1;
IF VI1:3 < 0 CALL 2;
IF VI1:3 > 78 CALL 2;
CONNECT 2 TO 1 AT VI1:2;
12 : POPV VI1:2;
13 : RETURN; group number : 1
14 : PROC 1; configuration : LIST
VI0:1 := ID - 1; for LIST calculating DIMi
VI0:1 := VI0:1 + 1; DIM1
RETURN; configuration : LIST
15 : PROC 1
SCALAR B79 I1 I3 ; OUT
16!15 : STORE VB0:1 TO SB1:1; line 15 column 2
17!16 : SI1:1 := 1; line 16 column 2
18 : SI1:2 := 79;
19!16 : IF SI1:1 > SI1:2 GOTO 31; line 16 column 2
20!17 : IF SI1:1 < 1 CALL 3; line 17 column 4
21 : IF 79 < SI1:1 CALL 3;
22 : SI1:3 := ADDR SB1:1 - SIZE( B1 );
23 : SI1:4 := SI1:1 * SIZE( B1 );
24 : SI1:3 := SI1:3 + SI1:4;
25 : IF SB[SI1:3] = FALSE GOTO 28;
26!17 : WRITE 'X'; line 17 column 17
27 : GOTO 29;
28!17 : WRITE ' '; line 17 column 33
29 : SI1:1 := SI1:1 + 1;
30 : GOTO 19;
31!19 : WRITE EOL; line 19 column 2
32!20 : RETURN; OUT
33 : CALL 4; connections
34!23 : CALL 14; line 23 column 2
35!24 : VB0:1 := FALSE; line 24 column 4
36!26 : CALL 14; line 26 column 2
37 : PARALLEL 00000000000000000000000000000000000000100000000000
00000000000000000000000000000;
38!27 : VB0:1 := TRUE; line 27 column 4
39!28 : PARALLEL 11111111111111111111111111111111111111111111111111
11111111111111111111111111111;
40!30 : SI0:1 := 1; line 30 column 2
41 : SI0:2 := 50;
42!30 : IF SI0:1 > SI0:2 GOTO 52; line 30 column 2
43!31 : CALL 14; line 31 column 4
44!32 : CALL 15; OUT line 32 column 6
45!33 : VB0:2 := VB0:1; line 33 column 6
46 : PROPAGATE VB0:2 OUT 1 IN 2;
47!34 : VB0:3 := VB0:1; line 34 column 6
48 : PROPAGATE VB0:3 OUT 2 IN 1;
49!35 : VB0:1 := VB0:2 <> VB0:3; line 35 column 6
50 : SI0:1 := SI0:1 + 1;
51 : GOTO 42;
52 : END; CELLULAR_AUTOMATON
STOP